# 1.创建Socket对象
import socket
socket_server = socket.socket()
# 2.绑定socket_server到指定ip和端口
socket_server.bind(("localhost",7777))
# 3. 服务端开始监听端口
## listen()里面可以填写int类型的整数，表示允许连接的数量，超出的会等待，不填的话会自动分配
socket_server.listen()
# 4.接收客户端连接，获得连接对象
conn,address = socket_server.accept()
## accept方法是一个阻塞方法，如果没有连接，会卡在这一行代码
## accept返回的是一个二元元组，用两个变量接收2个元素
## address是客户端地址,conn是消息传输对象用来发送和接收消息
print(f"接收到客户端连接，地址为{address}")
# 5.客户端连接后，通过recv方法，接收客户端发送的消息
client_data = conn.recv(1024).decode("UTF-8")
## recv方法返回值是字节,通过decode方法使用UTF-8的编码转换为字符串
## recv的传参是buffsize，缓冲区大小，一般设置为1024
print(client_data)
# 6.通过send方法回复客户端消息
conn.send("我已收到你的连接!".encode("UTF-8"))
# 7.关闭连接
conn.close()
socket_server.close()